As a technique for recording and transmitting a large volume of video information in the form of digital data, a moving picture experts group (MPEG) encoding method or the like has been adopted and established as an international standard encoding method, e.g., MPEG-1 standard, MPEG-2 standard, MPEG-4 standard, H.264/advanced video coding (AVC) standard.
With these standards, a target image to be encoded is predicted on a block basis by using a reconstructed encoded image (decoded image), and a difference (prediction difference) between the predicted image and the target image is encoded to exclude redundancy in the video signal and reduce an amount of code bits (referred to as code amount hereinafter). Specifically, a DCT (discrete cosine transform) or the like as a type of frequency transform method is executed on the prediction difference, and the generated DCT coefficients are quantized. In general, there is a trade-off between the image quality and the code amount, but the trade-off can be adjusted by controlling a value of parameter employed in quantization (referred to as quantization parameter hereinafter). Hence, when it is necessary to restrict a code amount at a desired bit rate due to limitation in the capacity of a transmission path, an input/output buffer or the like, a coding rate control function needs to be used to adaptively determine the quantization parameter value based on the relationship between a required bit rate and a generated code amount.
Meanwhile, the H.264/AVC standard has adopted, as a variable-length coding method for each syntax element after quantization, a context-based adaptive binary arithmetic coding (CABAC) using an arithmetic coding with high computational burden, in addition to a context-based adaptive variable length coding (CAVLC) enabling high-speed processing based on a look-up table. The use of the CABAC allows the code amount to be reduced by about 10˜20% as compared with the use of the CAVLC, but drastically increases computational burden. Accordingly, to realize a real-time processing, there is a need to design an arithmetic coding processing with high computational burden to be performed independently in a separate process. (see, e.g., Japanese Patent Applications Publication Nos. 2010-219842, 2009-021775 and 2008-011204)
However, when the arithmetic coding processing is performed independently, it is difficult to obtain results of the arithmetic coding process on a macroblock basis sequentially to calculate a generated code amount. Consequently, there is a problem of improper execution of a rate control determining a value of a quantization parameter based on the relationship between a required bit rate and a generated code amount.